热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GSEAmining|来看看你的GSEA结果是不是需要瘦身啦!~

1写在前面最近真是累的不行,今天抽空写一下新的教程,关于人人都会做的GSEA(GeneSetEnrichmentAnalysisÿ


1写在前面

最近真是累的不行,今天抽空写一下新的教程,关于人人都会做的GSEA(Gene Set Enrichment Analysis)。

但有时候我们做完GSEA后结果实在太多,无法确定其中重要的生物学意义,难以解释。🤨

本期我们介绍一下GSEAmining包,对我们的GSEA结果做一个瘦身吧,基本原理是:👇

1️⃣ 对参与类似生物过程的基因集应该有共同的基因
2️⃣ 对拥有一定数量的共同基因的相似基因集进行功能聚类。


2用到的包

rm(list = ls())
# if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
#
# BiocManager::install("GSEAmining")

library(dplyr)
library(GSEAmining)
library(clusterProfiler)
library(msigdbr)
library(org.Hs.eg.db)

3示例数据

这里我们从DOSE包里提取一些基因,作为我们的genelist,假装是我们的输入数据。😙

data(geneList, package="DOSE")
gene <- names(geneList)[abs(geneList) > 2]

# Entrez gene ID
head(gene)


alt

4整理gmt

这里我们用msigdbr包提取一下hallmark&#xff0c;GOKEGG的基因集。&#x1f912;

再也不用去下载gmt文件了&#xff0c;真香&#xff01;~&#x1f602;

h_t2g <- msigdbr(species &#61; "Homo sapiens", category &#61; "H") %>%
dplyr::select(gs_name, entrez_gene)

C2_t2g <- msigdbr(species &#61; "Homo sapiens", category &#61; "C2", subcategory &#61; "CP:KEGG") %>%
dplyr::select(gs_name, entrez_gene)

C5_t2g <- msigdbr(species &#61; "Homo sapiens", category &#61; "C5") %>%
dplyr::select(gs_name, entrez_gene)

all_t2g <- rbind(h_t2g, C2_t2g, C5_t2g)

head(all_t2g)


alt

5GSEA分析


5.1 开始GSEA

GSEA.res <- GSEA(geneList, TERM2GENE &#61; all_t2g, pvalueCutoff &#61; 0.1, eps &#61; 0)


alt



5.2 将ID转为SYMBOL

GSEA.res <- setReadable(GSEA.res, keyType &#61; "ENTREZID", OrgDb &#61; "org.Hs.eg.db")

dat <- GSEA.res&#64;result



5.3 过滤一下

这里我们设个阈值&#xff0c;过滤一下&#xff0c;实在是太多了。&#x1f602;

gs.filt <- gm_filter(dat,
p.adj &#61; 0.05,
neg_NES &#61; 2.5,
pos_NES &#61; 2.5)

6聚类


6.1 开始聚类

这里我们进行一下hierarchical clustering&#xff0c;对富集结果进行一下瘦身。&#x1f928;

补充一下&#xff0c;这一步是基于core_enrichment的。&#x1f637;

gs.cl <- gm_clust(gs.filt)
gs.cl


alt



6.2 初步可视化

画个cluster dendrogram吧&#xff0c; 红色 ➡️ positive, 蓝色 ➡️ negative。&#x1f619;

gm_dendplot(gs.filt,
gs.cl)


alt



6.3 改个颜色

gm_dendplot(gs.filt,
gs.cl,
col_pos &#61; &#39;orange&#39;,
col_neg &#61; &#39;black&#39;,
rect &#61; T,
dend_len &#61; 20,
rect_len &#61; 1)


alt

7分组评估富集结果

这里我们按cluster对各个cluster进行一下深入分析&#xff0c;看看那个term才是最重要的。&#x1f929;

7.1 分组分析

这里我们有4cluster&#xff0c;看看都是什么term吧。&#x1f601;
我们用词云的方式展示下结果&#xff0c;越大越有意义。&#x1f9d0;

gm_enrichterms(gs.filt, gs.cl)


alt



7.2 不分组分析

当然你也可以不按cluster分析&#xff0c;全部都放在一起。&#x1f602;

gm_enrichterms(gs.filt,
gs.cl,
clust &#61; F,
col_pos &#61; &#39;chocolate3&#39;,
col_neg &#61; &#39;skyblue3&#39;)


alt

8分组评估具体基因

对于找到的有意义的基因集&#xff0c;我们也可以看下哪个基因对其贡献最大&#xff0c;在其中起到最重要的作用。&#x1f60f;

gm_enrichcores(gs.filt, gs.cl,
col_pos &#61; &#39;chocolate3&#39;,
col_neg &#61; &#39;skyblue3&#39;)


alt

9如何引用

&#x1f4cd;
Arqués O (2022). GSEAmining: Make Biological Sense of Gene Set Enrichment Analysis Outputs. R package version 1.8.0.




alt


最后祝大家早日不卷!~



点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰



&#x1f4cd; 往期精彩

&#x1f4cd; &#x1f929; WGCNA | 值得你深入学习的生信分析方法&#xff01;~
&#x1f4cd; &#x1f929; ComplexHeatmap | 颜狗写的高颜值热图代码&#xff01;
&#x1f4cd; &#x1f925; ComplexHeatmap | 你的热图注释还挤在一起看不清吗&#xff01;&#xff1f;
&#x1f4cd; &#x1f928; Google | 谷歌翻译崩了我们怎么办&#xff01;&#xff1f;&#xff08;附完美解决方案&#xff09;
&#x1f4cd; &#x1f929; scRNA-seq | 吐血整理的单细胞入门教程
&#x1f4cd; &#x1f923; NetworkD3 | 让我们一起画个动态的桑基图吧~
&#x1f4cd; &#x1f929; RColorBrewer | 再多的配色也能轻松搞定&#xff01;~
&#x1f4cd; &#x1f9d0; rms | 批量完成你的线性回归
&#x1f4cd; &#x1f929; CMplot | 完美复刻Nature上的曼哈顿图
&#x1f4cd; &#x1f920; Network | 高颜值动态网络可视化工具
&#x1f4cd; &#x1f917; boxjitter | 完美复刻Nature上的高颜值统计图
&#x1f4cd; &#x1f92b; linkET | 完美解决ggcor安装失败方案&#xff08;附教程&#xff09;
&#x1f4cd; ......


本文由 mdnice 多平台发布






推荐阅读
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • 在 `UITableViewController` 中采用简洁的平面样式布局时,可以通过优化代码实现单元格扩展至屏幕边缘的效果,同时确保节标题以分组样式呈现,从而提升用户体验和界面美观度。通过这种方式,可以更好地组织和展示列表内容,使其更加清晰和有序。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • Vue ElementUI 实现邮箱地址自动补全功能详解 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
author-avatar
zealyw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有